package com.ujson.base.common.utils;

import com.ujson.base.common.enums.BaseEnum;
import com.ujson.base.common.enums.ErrorCode;

import java.util.*;

/**
 * <h3>ujson-parent</h3>
 * <p>枚举工具</p>
 *
 * @author JerryLiu  a1031757312@gmail.com
 * @version 1.0
 * @date 2021-11-28 10:57
 */
public class EnumUtil {
    private static final Map<Class, List<Enum>> clazzMap = new HashMap<>();

    public static <T extends BaseEnum> T getEnum(Class<T> clazz, Object value) {
        if (Objects.isNull(value)) {
            return null;
        }
        T[] consts = clazz.getEnumConstants();
        for (T t : consts) {
            if (value instanceof String && t.getMsg().equalsIgnoreCase(value.toString())) {
                return t;
            } else if (value instanceof Integer && t.getCode() == Integer.valueOf(value.toString()).intValue()) {
                return t;
            }
        }
        return null;
    }

}
